<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id="box">hello</div>
  <p id="p">world</p>
  <!-- 这是注释 -->
  <script>
    // 文档树
    //   节点
    //      元素节点
    //      属性节点
    //      文本节点
    //      注释节点
    
    // var box = document.getElementById('box');
    // console.dir(box);

    // var p = document.getElementById('p');
    // console.dir(p);
    // 
    // 
    // 创建一些列具有相同属性的对象，构造函数
    

    // 获取对象没有的属性，属性的值是undefined
    function Node(options) {
      // if (options.className) {
      //   this.className = options.className;
      // } else {
      //   this.className = '';
      // }
      
      // this.className = options.className ? options.className : '';
      // 设置属性的默认值
      this.className = options.className || '';
    }

    // || 布尔类型的运算符，如果有一边是true就返回true，如果两边同时为false返回false
    // || 两边也可以是其它类型，会先转换成布尔类型
    // 如果第一个 运算数 转换成布尔类型，是true ，直接返回这个运算数
    // 如果第一个 运算数 转换成布尔类型，是false，返回第二个运算数

    var o = new Node({
      // className: 'cls'
    });

    console.log(o);
  </script>
</body>
</html>
